#!/bin/bash

# -------安装参数--------
export SERVERS=1
export AGENTS=2
export registry_config="registries.yaml" #/etc/rancher/k3s/registries.yaml
export registry_use="k3d-registry:5000"
export cluster_name="dev"
export port="6550"
export chainguard="cgr.dev/chainguard/k3s" #安全无漏洞的镜像版本
export k3s="rancher/k3s"
export tag='v1.34.2-k3s1' #自定义版本
# 指定镜像版本 --image rancher/k3s:v1.23.4-k3s1 不指定用默认 --image $image #  -p "443:443@loadbalancer" -p "80:80@loadbalancer" \

echo ""
echo "#######################################################"
echo "########### Deploying k3d with k3s and cilium #########"
echo "############### creating cluster with: ################"
echo "############### servers: ${SERVERS} ${MEM_SERVER} ##########################"
echo "############### agents: ${AGENTS} ${MEM_AGENT} ###########################"
echo "#######################################################"
echo ""

k3d cluster create $cluster_name --api-port $port --verbose \
	-p "443:443@loadbalancer" -p "80:80@loadbalancer" \
	--servers $SERVERS --agents $AGENTS \
	--k3s-arg "--disable=traefik@server:*" \
	--k3s-arg="--disable-network-policy@server:*" \
	--registry-config $registry_config \
	--image $k3s:$tag

#     --k3s-arg "--disable=traefik@server:*" \
#     --k3s-arg="--disable-network-policy@server:*" \
#     --k3s-arg="--disable=metrics-server@server:*" \

echo ""
echo "#######################################################"
echo "#################   输出kubeconfig.... #################"
echo "#######################################################"
echo ""

# 输出kubeconfig
rm -rf /mnt/c/Users/Administrator/AppData/Roaming/Freelens/kubeconfigs/k3d-dev
export KUBECONFIG=$HOME/.kube/config
cat $HOME/.kube/config >/mnt/c/Users/Administrator/AppData/Roaming/Freelens/kubeconfigs/k3d-dev

echo "输出kubeconfig...."

echo ""
echo "##############################################################"
echo "######## labeling agents as workers to look good... ##########"
echo "##############################################################"
echo ""

counta=0
while [ $counta -lt ${AGENTS} ]; do
	kubectl label --overwrite node k3d-dev-agent-$counta node-role.kubernetes.io/worker=true
	((counta++))
done

echo ""
echo "##############################################################"
echo "###### kubectl get nodes to check current status... ##########"
echo "##############################################################"
echo ""

kubectl get nodes
sleep 5
echo ""
echo "##############################################################"
echo "###### kubectl getting pods to check where we are... #########"
echo "##############################################################"
echo ""
kubectl get po -A

# 更改数据平面label
# kubectl label node k3d-dev-agent-0 node-role.kubernetes.io/worker=worker
# kubectl label node k3d-dev-agent-1 node-role.kubernetes.io/worker=worker

# 设置污点
# kubectl taint nodes node1 key1=value1:NoSchedule  # pod不会被调度到这个节点
# kubectl taint nodes node1 key1=value1:NoExecute   # pod会被驱逐
# kubectl taint nodes node1 key2=value2:NoSchedule
export K3D_VERSION=$(curl -s https://api.github.com/repos/k3d-io/k3d/releases/latest | jq -r .tag_name)
# echo $K3D_VERSION
export K3S_VERSION=$(curl -s https://api.github.com/repos/k3s-io/k3s/releases/latest | jq -r .tag_name)
# echo $K3S_VERSION
export self_version=$(k3d version | grep 'k3d version' | awk '{print $3}')

echo ""
echo "##############################################################"
echo "########## 最新版本的K3d: $K3D_VERSION K3S: $K3S_VERSION ###########"
echo "########## 当前版本的K3d: $self_version K3S: $K3S_VERSION ###########"
echo "##############################################################"
echo ""
